// 得到路由信息
import {
  constantRoutes,
  syncRouter
}
from '@/router/index'

// 当前用户的路由信息
const state = {
  router: constantRoutes
}

const mutations = {
  // 设置动态路由
  SET_ROUTER(state, payload) {
    // payload 动态路由
    state.router = [...constantRoutes, ...payload]
  }
}

const action = {
  // 获取当前用户的动态路由 调用 mutations 中的 SET_ROUTES
  set_routes(context, payload) {
    // 创建一个新的动态路由数组
    const newRoutes = []
    // 得到所有的动态路由数组： syncRouter
    syncRouter.forEach(item => {
      const mypath = item.path.split('/')[1]
      // 判断路径在当前用户的权限列表中是否存在
      if (payload.includes(mypath)) {
        newRoutes.push(item)
      }
    })
    // 调用 mutations 中方法 老保存动态路由
    context.commit('SET_ROUTER', newRoutes)
    // 埋下一个伏笔 (后面户会用到)
    return newRoutes

  }

}

export default {
  namespaced: true,
  action,
  mutations,
  state
}
